;buildInfoPackage: chisel3, version: 3.1-SNAPSHOT, scalaVersion: 2.11.11, sbtVersion: 0.13.15, builtAtString: 2017-06-08 17:59:39.314, builtAtMillis: 1496944779314
circuit GCDUnitTester : 
  module GCD : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip a : UInt<16>, flip b : UInt<16>, flip e : UInt<1>, z : UInt<16>, v : UInt<1>}
    
    clock is invalid
    reset is invalid
    io is invalid
    reg x : UInt<16>, clock @[GCDUnitTest.scala 18:15]
    reg y : UInt<16>, clock @[GCDUnitTest.scala 19:15]
    node _T_9 = gt(x, y) @[GCDUnitTest.scala 20:13]
    when _T_9 : @[GCDUnitTest.scala 20:18]
      node _T_10 = sub(x, y) @[GCDUnitTest.scala 20:27]
      node _T_11 = asUInt(_T_10) @[GCDUnitTest.scala 20:27]
      node _T_12 = tail(_T_11, 1) @[GCDUnitTest.scala 20:27]
      x <= _T_12 @[GCDUnitTest.scala 20:22]
      skip @[GCDUnitTest.scala 20:18]
    node _T_13 = gt(x, y) @[GCDUnitTest.scala 21:13]
    node _T_15 = eq(_T_13, UInt<1>("h00")) @[Conditional.scala 19:11]
    when _T_15 : @[Conditional.scala 19:15]
      node _T_16 = sub(y, x) @[GCDUnitTest.scala 21:27]
      node _T_17 = asUInt(_T_16) @[GCDUnitTest.scala 21:27]
      node _T_18 = tail(_T_17, 1) @[GCDUnitTest.scala 21:27]
      y <= _T_18 @[GCDUnitTest.scala 21:22]
      skip @[Conditional.scala 19:15]
    when io.e : @[GCDUnitTest.scala 22:15]
      x <= io.a @[GCDUnitTest.scala 22:19]
      y <= io.b @[GCDUnitTest.scala 22:30]
      skip @[GCDUnitTest.scala 22:15]
    io.z <= x @[GCDUnitTest.scala 23:8]
    node _T_20 = eq(y, UInt<1>("h00")) @[GCDUnitTest.scala 24:13]
    io.v <= _T_20 @[GCDUnitTest.scala 24:8]
    
  module GCDUnitTester : 
    input clock : Clock
    input reset : UInt<1>
    output io : {}
    
    clock is invalid
    reset is invalid
    io is invalid
    inst device_under_test of GCD @[GCDUnitTest.scala 45:33]
    device_under_test.io is invalid
    device_under_test.clock <= clock
    device_under_test.reset <= reset
    reg value : UInt<3>, clock with : (reset => (reset, UInt<3>("h00"))) @[Counter.scala 17:33]
    reg _T_6 : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[SteppedHWIOTester.scala 177:33]
    node _T_8 = eq(_T_6, UInt<1>("h00")) @[SteppedHWIOTester.scala 179:10]
    when _T_8 : @[SteppedHWIOTester.scala 179:17]
      wire _T_17 : UInt<16>[6] @[SteppedHWIOTester.scala 123:27]
      _T_17 is invalid @[SteppedHWIOTester.scala 123:27]
      _T_17[0] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      _T_17[1] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      _T_17[2] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      _T_17[3] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      _T_17[4] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      _T_17[5] <= UInt<16>("h030") @[SteppedHWIOTester.scala 123:27]
      device_under_test.io.b <= _T_17[value] @[SteppedHWIOTester.scala 129:16]
      wire _T_35 : UInt<16>[6] @[SteppedHWIOTester.scala 123:27]
      _T_35 is invalid @[SteppedHWIOTester.scala 123:27]
      _T_35[0] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      _T_35[1] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      _T_35[2] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      _T_35[3] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      _T_35[4] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      _T_35[5] <= UInt<16>("h040") @[SteppedHWIOTester.scala 123:27]
      device_under_test.io.a <= _T_35[value] @[SteppedHWIOTester.scala 129:16]
      wire _T_53 : UInt<1>[6] @[SteppedHWIOTester.scala 123:27]
      _T_53 is invalid @[SteppedHWIOTester.scala 123:27]
      _T_53[0] <= UInt<1>("h01") @[SteppedHWIOTester.scala 123:27]
      _T_53[1] <= UInt<1>("h00") @[SteppedHWIOTester.scala 123:27]
      _T_53[2] <= UInt<1>("h00") @[SteppedHWIOTester.scala 123:27]
      _T_53[3] <= UInt<1>("h00") @[SteppedHWIOTester.scala 123:27]
      _T_53[4] <= UInt<1>("h00") @[SteppedHWIOTester.scala 123:27]
      _T_53[5] <= UInt<1>("h00") @[SteppedHWIOTester.scala 123:27]
      device_under_test.io.e <= _T_53[value] @[SteppedHWIOTester.scala 129:16]
      wire _T_66 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_66 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_66 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_70 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_70 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_70 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_74 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_74 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_74 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_78 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_78 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_78 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_82 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_82 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_82 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_86 : UInt<16> @[SteppedHWIOTester.scala 135:39]
      _T_86 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_86 <= UInt<5>("h010") @[SteppedHWIOTester.scala 135:39]
      wire _T_89 : UInt<16>[6] @[SteppedHWIOTester.scala 133:28]
      _T_89 is invalid @[SteppedHWIOTester.scala 133:28]
      _T_89[0] <= _T_66 @[SteppedHWIOTester.scala 133:28]
      _T_89[1] <= _T_70 @[SteppedHWIOTester.scala 133:28]
      _T_89[2] <= _T_74 @[SteppedHWIOTester.scala 133:28]
      _T_89[3] <= _T_78 @[SteppedHWIOTester.scala 133:28]
      _T_89[4] <= _T_82 @[SteppedHWIOTester.scala 133:28]
      _T_89[5] <= _T_86 @[SteppedHWIOTester.scala 133:28]
      wire _T_106 : UInt<1>[6] @[SteppedHWIOTester.scala 138:39]
      _T_106 is invalid @[SteppedHWIOTester.scala 138:39]
      _T_106[0] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_106[1] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_106[2] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_106[3] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_106[4] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_106[5] <= UInt<1>("h01") @[SteppedHWIOTester.scala 138:39]
      when _T_106[value] : @[SteppedHWIOTester.scala 144:51]
        node _T_117 = eq(device_under_test.io.z, _T_89[value]) @[SteppedHWIOTester.scala 145:31]
        when _T_117 : @[SteppedHWIOTester.scala 145:72]
          skip @[SteppedHWIOTester.scala 145:72]
        node _T_119 = eq(_T_117, UInt<1>("h00")) @[SteppedHWIOTester.scala 145:72]
        when _T_119 : @[SteppedHWIOTester.scala 150:19]
          node _T_122 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 151:15]
          when _T_122 : @[SteppedHWIOTester.scala 151:15]
            printf(clock, UInt<1>(1), "    failed on step %d -- port z:  %d expected %d\n", value, device_under_test.io.z, _T_89[value]) @[SteppedHWIOTester.scala 151:15]
            skip @[SteppedHWIOTester.scala 151:15]
          node _T_124 = or(UInt<1>("h00"), reset) @[SteppedHWIOTester.scala 158:15]
          node _T_126 = eq(_T_124, UInt<1>("h00")) @[SteppedHWIOTester.scala 158:15]
          when _T_126 : @[SteppedHWIOTester.scala 158:15]
            printf(clock, UInt<1>(1), "Assertion failed\n    at SteppedHWIOTester.scala:158 assert(false.B)\n") @[SteppedHWIOTester.scala 158:15]
            stop(clock, UInt<1>(1), 1) @[SteppedHWIOTester.scala 158:15]
            skip @[SteppedHWIOTester.scala 158:15]
          node _T_128 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 159:13]
          when _T_128 : @[SteppedHWIOTester.scala 159:13]
            stop(clock, UInt<1>(1), 0) @[SteppedHWIOTester.scala 159:13]
            skip @[SteppedHWIOTester.scala 159:13]
          skip @[SteppedHWIOTester.scala 150:19]
        skip @[SteppedHWIOTester.scala 144:51]
      wire _T_132 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_132 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_132 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_136 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_136 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_136 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_140 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_140 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_140 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_144 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_144 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_144 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_148 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_148 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_148 <= UInt<1>("h00") @[SteppedHWIOTester.scala 135:39]
      wire _T_152 : UInt<1> @[SteppedHWIOTester.scala 135:39]
      _T_152 is invalid @[SteppedHWIOTester.scala 135:39]
      _T_152 <= UInt<1>("h01") @[SteppedHWIOTester.scala 135:39]
      wire _T_155 : UInt<1>[6] @[SteppedHWIOTester.scala 133:28]
      _T_155 is invalid @[SteppedHWIOTester.scala 133:28]
      _T_155[0] <= _T_132 @[SteppedHWIOTester.scala 133:28]
      _T_155[1] <= _T_136 @[SteppedHWIOTester.scala 133:28]
      _T_155[2] <= _T_140 @[SteppedHWIOTester.scala 133:28]
      _T_155[3] <= _T_144 @[SteppedHWIOTester.scala 133:28]
      _T_155[4] <= _T_148 @[SteppedHWIOTester.scala 133:28]
      _T_155[5] <= _T_152 @[SteppedHWIOTester.scala 133:28]
      wire _T_172 : UInt<1>[6] @[SteppedHWIOTester.scala 138:39]
      _T_172 is invalid @[SteppedHWIOTester.scala 138:39]
      _T_172[0] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_172[1] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_172[2] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_172[3] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_172[4] <= UInt<1>("h00") @[SteppedHWIOTester.scala 138:39]
      _T_172[5] <= UInt<1>("h01") @[SteppedHWIOTester.scala 138:39]
      when _T_172[value] : @[SteppedHWIOTester.scala 144:51]
        node _T_183 = eq(device_under_test.io.v, _T_155[value]) @[SteppedHWIOTester.scala 145:31]
        when _T_183 : @[SteppedHWIOTester.scala 145:72]
          skip @[SteppedHWIOTester.scala 145:72]
        node _T_185 = eq(_T_183, UInt<1>("h00")) @[SteppedHWIOTester.scala 145:72]
        when _T_185 : @[SteppedHWIOTester.scala 150:19]
          node _T_188 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 151:15]
          when _T_188 : @[SteppedHWIOTester.scala 151:15]
            printf(clock, UInt<1>(1), "    failed on step %d -- port v:  %d expected %d\n", value, device_under_test.io.v, _T_155[value]) @[SteppedHWIOTester.scala 151:15]
            skip @[SteppedHWIOTester.scala 151:15]
          node _T_190 = or(UInt<1>("h00"), reset) @[SteppedHWIOTester.scala 158:15]
          node _T_192 = eq(_T_190, UInt<1>("h00")) @[SteppedHWIOTester.scala 158:15]
          when _T_192 : @[SteppedHWIOTester.scala 158:15]
            printf(clock, UInt<1>(1), "Assertion failed\n    at SteppedHWIOTester.scala:158 assert(false.B)\n") @[SteppedHWIOTester.scala 158:15]
            stop(clock, UInt<1>(1), 1) @[SteppedHWIOTester.scala 158:15]
            skip @[SteppedHWIOTester.scala 158:15]
          node _T_194 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 159:13]
          when _T_194 : @[SteppedHWIOTester.scala 159:13]
            stop(clock, UInt<1>(1), 0) @[SteppedHWIOTester.scala 159:13]
            skip @[SteppedHWIOTester.scala 159:13]
          skip @[SteppedHWIOTester.scala 150:19]
        skip @[SteppedHWIOTester.scala 144:51]
      node _T_196 = eq(value, UInt<3>("h05")) @[Counter.scala 25:24]
      node _T_198 = add(value, UInt<1>("h01")) @[Counter.scala 26:22]
      node _T_199 = tail(_T_198, 1) @[Counter.scala 26:22]
      value <= _T_199 @[Counter.scala 26:13]
      when _T_196 : @[Counter.scala 28:21]
        value <= UInt<1>("h00") @[Counter.scala 28:29]
        skip @[Counter.scala 28:21]
      when _T_196 : @[SteppedHWIOTester.scala 183:22]
        node _T_202 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 184:15]
        when _T_202 : @[SteppedHWIOTester.scala 184:15]
          printf(clock, UInt<1>(1), "Stopping, end of tests, 6 steps\n") @[SteppedHWIOTester.scala 184:15]
          skip @[SteppedHWIOTester.scala 184:15]
        _T_6 <= UInt<1>("h01") @[SteppedHWIOTester.scala 185:14]
        node _T_205 = eq(reset, UInt<1>("h00")) @[SteppedHWIOTester.scala 186:13]
        when _T_205 : @[SteppedHWIOTester.scala 186:13]
          stop(clock, UInt<1>(1), 0) @[SteppedHWIOTester.scala 186:13]
          skip @[SteppedHWIOTester.scala 186:13]
        skip @[SteppedHWIOTester.scala 183:22]
      skip @[SteppedHWIOTester.scala 179:17]
    
